package com.kmxd.ams.client.search.dto;

import com.kmxd.ams.core.common.bo.ConditionBO;
import com.kmxd.ams.core.common.enums.FieldOrderTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * 高级检索
 *
 * @author nickbi
 */
@Schema(description = "高级检索")
@Data
public class AdvancedSearchDTO implements Serializable {

  @NotNull(message = "表名不能为空")
  @Schema(description = "表名")
  private String tableId;

  @NotNull(message = "门类不能为空")
  @Schema(description = "门类id")
  private Long archTypeId;

  @Schema(description = "标题")
  private String title;

  @NotNull(message = "条件不能为空")
  @Schema(description = "条件")
  private List<ConditionBO> condition;

  @NotNull(message = "页数不能为空")
  @Schema(description = "页数")
  private Integer page;

  @NotNull(message = "分页不能为空")
  @Schema(description = "分页大小")
  private Integer size;

  @Schema(description = "归档情况")
  private String fileTypes;

  @Schema(description = "年度")
  private String years;

  @Schema(description = "机构")
  private String deptIds;

  @Schema(description = "时间排序")
  private FieldOrderTypeEnum orderByDate;

  @Schema(description = "相关性排序")
  private FieldOrderTypeEnum orderByScore;
}
